#ifndef _TD_GAMEOVERSCREEN_H_
#define _TD_GAMEOVERSCREEN_H_

/************************************************************************/
/* GUI                                                                  */
/************************************************************************/
#include "GUI/Panels/BasePanel.h"
#include "GUI/Misc/Fadescreen.h"

/************************************************************************/
/* Resources                                                            */
/************************************************************************/
#include "Resources/ResourceManager.h"
#include "Resources/Tiles/Tile.h"

using namespace std;
using namespace boost;

namespace TD_GUI {

	
	class GameOverScreen : public BasePanel {

		int m_bowserIndex;
		Tile *m_pBowserIcon;
		Tile *m_pGameOverOptions;
		Fadescreen *m_pFadescreen;
		shared_ptr<SDLMusic> m_pGameoverMusic;

		void moveUpBowserIcon();
		void moveDownBowserIcon();

	public:
		/************************************************************************/
		/* ctors and dtors					                                    */
		/************************************************************************/
		//Default constructor
		explicit GameOverScreen(bool gameWon = false);

		//Copy constructor
		explicit GameOverScreen(const GameOverScreen &rhs);

		//Assignment constructor
		GameOverScreen& operator=(const GameOverScreen &rhs);

		//Destructor
		~GameOverScreen();


		/************************************************************************/
		/* Functionalities                                                      */
		/************************************************************************/
		void render(SDL_Surface *const g_destSurface, unsigned int deltaTime);
		interaction_t processEvent(const SDL_Event &event);
	};
}

#endif

